package com.kwedding.util;

import java.lang.reflect.Type;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
import com.google.gson.JsonParser;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;

import springfox.documentation.spring.web.json.Json;

/**
 * 设置json 解析对象
 * @author MickeyWork
 */
public class SpringfoxJsonToGsonAdapter implements JsonSerializer<Json>, JsonDeserializer<Json> {
    private Logger logger = LoggerFactory.getLogger(SpringfoxJsonToGsonAdapter.class);
	@Override
	public JsonElement serialize(Json json, Type type, JsonSerializationContext context) {
		final JsonParser parser = new JsonParser();
		logger.info("json:"+json);
		return parser.parse(json.value());
	}

	@Override
	public Json deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
			throws JsonParseException {
		logger.info("dejson:"+json);
		return new Json(json.getAsJsonPrimitive().getAsString());
	}
}